package com.CST.mapper.cst.ys;

import com.CST.bo.YsAllYearBudgetResultsBO;
import com.CST.dto.ys.YsResultDTO;
import com.CST.entity.ys.YsDepartment;
import com.CST.entity.ys.YsSubject;
import com.CST.vo.ys.SubjectAndDept;
import com.CST.vo.ys.YsAllYearBudgetManageResultsVO;
import com.CST.vo.ys.YsBudgetResultsVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author qtx
 * @since 2023-05-28
 */
@Mapper
public interface YsBudgetResultsMapper extends BaseMapper<YsSubject> {

    /**
     * 查询业务预算执行结果
     *
     * @param page
     * @param dto  条件
     * @return 分页集合
     */
    IPage<YsBudgetResultsVO> selectBusinessResult(Page<YsSubject> page, @Param("dto") YsResultDTO dto);
    IPage<YsBudgetResultsVO> selectManageResult(Page<YsSubject> page, @Param("dto") YsResultDTO dto);

    List<YsBudgetResultsVO> selectBusinessYear(@Param("dto") YsResultDTO dto);

    IPage<YsAllYearBudgetResultsBO> selectAllYear(Page<YsSubject> page, @Param("dto") YsResultDTO dto);
    List<YsAllYearBudgetResultsBO> selectAllYearTotal(@Param("dto") YsResultDTO dto);

    List<YsDepartment> listDepartment();

    IPage<YsAllYearBudgetManageResultsVO> selectManageAllResult(Page<YsSubject> page, YsResultDTO dto);

    List<SubjectAndDept> querySubjectAndDept(YsResultDTO dto);

    List<SubjectAndDept> queryOrganizationList(YsResultDTO dto);

    List<SubjectAndDept> querySanDetailList(YsResultDTO dto);

    List<SubjectAndDept> queryXuDetailList(YsResultDTO dto);

    List<SubjectAndDept> queryYearList(YsResultDTO dto);

    List<SubjectAndDept> selectManageSubjects(YsResultDTO dto);

    List<SubjectAndDept> selectManageResultData(YsResultDTO dto);
    
    List<SubjectAndDept> queryManageSanDetailList(YsResultDTO dto);

    List<SubjectAndDept> queryManageXuDetailList(YsResultDTO dto);

    List<SubjectAndDept> queryManageYearList(YsResultDTO dto);

    List<YsDepartment> listBusinessDepartment();
}
